package com.qingcloud.adminbackend.mapper;

import com.qingcloud.adminbackend.entity.config.SysSensorFactorConfig;
import com.qingcloud.adminbackend.entity.sensor.SysSensorFactorConfigDTO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 传感器监测因子配置数据表 Mapper 接口
 * </p>
 *
 * @author luozehua
 * @since 2019-04-12
 */
public interface SysSensorFactorConfigMapper extends BaseMapper<SysSensorFactorConfig> {

    /**
     * 具体监测因子
     * @return
     */
    List<SysSensorFactorConfigDTO> getSensorFactor();

    /**
     * 获取所有新业务监测因子下发配置
     */
    List<SysSensorFactorConfig> findAitech();

    /**
     * 获取所网格化业务监测因子下发配置
     */
    List<SysSensorFactorConfig> findGrid();

    /**
     * 通过factorId获取实体对象
     */
    List<SysSensorFactorConfig> findByFactorId(@Param("factorIdList") List<Integer> factorIdList);

    /**
     * 获取指定排序类型监测因子列表(1健康空气, 2网格化)
     */
    List<SysSensorFactorConfigDTO> findByOrderType(@Param("orderType") Integer orderBy);


    /**
     * 获取校准监测因子列表(1健康空气, 2网格化)
     */
    List<SysSensorFactorConfigDTO> findAlineFactor(@Param("businessType") Integer businessType);

    /**
     * 获取VOCS监测因子列表(1健康空气, 2网格化)
     */
    List<SysSensorFactorConfigDTO> findVocsFactor(@Param("businessType") Integer businessType);

    List<SysSensorFactorConfigDTO> findByIds(@Param("factorIds") List<String> factorIds);

    /**
     * 获取监测因子字符串
     * @return
     */
    String getSensorFactorStr(@Param("factorIds")List<String>factorIds);

    /**
     * 监测因子拆分
     * @return
     */
    String getSensorFactorSplitStr(@Param("factorIds")List<String>factorIds);

    /**
     * 默认监测因子
     * @return
     */
    List<SysSensorFactorConfigDTO> getDefaultSensorFactor();

    /**
     * 对监测因子排序
     * @param factorIds
     * @return
     */
    String orderSensorFactors(@Param("factorIds") List<String> factorIds);
}
